/**
 * 
 */
package com.thx.resource.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.thx.common.datasource.DataSource;
import com.thx.common.service.BaseManager;
import com.thx.resource.dao.ResourceDao;
import com.thx.resource.model.Resource;

/**
 * 建立日期 : 2014年5月7日  下午4:48:42<br>
 * 作者 : shiyan<br>
 * 模块 : 权限 <br>
 * 描述 : 权限管理service<br>
 * 修改历史: 序号 日期 修改人 修改原因 <br>
 */
@Service
@DataSource("dataSourceB")
@Transactional(readOnly = true)
public class ResourceManager extends BaseManager<Resource>{
	@Autowired
	private ResourceDao resourceDao;

	public List<Resource> getTree() {
		String parentId = null;
		List<Resource> res = resourceDao.getByParentId(parentId);
		for(Resource r : res){
			getChildrenRes(r);
		}
		return res;
	}
	
	public List<Resource> getAll(String code) {
		return resourceDao.getAll(code);
	}
	private void getChildrenRes(Resource res) {
		List<Resource> children = resourceDao.getByParentId(res.getResourceId());
		if (children != null && children.size() > 0) {
			res.setChildrenResources(children);
			for (Resource child : children) {
				getChildrenRes(child);
			}
		}
	}
	public List<Resource> getByParentId(String parentId) {
		return resourceDao.getByParentId(parentId);
	}

	public Resource findByUrl(String url) {
		return resourceDao.findByUrl(url);
	}

	public Resource findByCode(String code) {
		return resourceDao.findByCode(code);
	}
	
}
